﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PrimaryAlgorithm.HasCycle
{
    class MainProject
    {
        static void Main(string[] args)
        {
            ListNode listNode1 = new ListNode(1);
            ListNode listNode2 = new ListNode(2);
            listNode1.next = listNode2;
            Console.WriteLine(HasCycle(listNode1));
            Console.ReadKey();
        }
        public static bool HasCycle(ListNode head)
        {
            List<ListNode> listNodes = new List<ListNode>();
            ListNode listNode = head;
            while (listNode!=null)
            {
                listNodes.Add(listNode);
                if (listNode.next!=null)
                {
                    if (listNodes.Any(i=>i== listNode.next))
                    {
                        return true;
                    }
                }
                listNode = listNode.next;
            }
            return false;
        }
    }
}
